package org.gfix.annotation;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * This allows an Enumeration to be mapped to standard FIX constants, 
 * whilst still maintaining the ability to have sensibly named enumerations
 * @author alan
 *
 */
@Documented
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface FixEnumValue {

	/**
	 * A comma seperated list of values which a fix message can send to represent
	 * this give enum.
	 * @return
	 */
	public String fixValue();
	
	/**
	 * If multiple fix values are given above this allows
	 * a single one to be chosen. If none given then the first value in the
	 * list will be chosen.
	 * @return
	 */
	public String fixOutValue() default "";
}
